/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：AbstractPortEditPart.js<br>
 * 日期：2016年9月20日<br>
 * 作者:王志远<br>
 * 功能：抽象端口编辑件，作为MVC的Controller，传递Model和Figure操作<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/

window.makeNamespace(window,"Rainier.UI.V2");

/**
 * 类型名称：Rainier.UI.V2.AbstractPortEditPart<br>
 * 类型功能：抽象编辑件<br>
 */
Rainier.UI.V2.AbstractPortEditPart = Rainier.UI.V2.AbstractEditPart.extend({
	
	NAME : "Rainier.UI.V2.AbstractPortEditPart",
	
	/**
	 * 函数名称：Rainier.UI.V2.AbstractPortEditPart.init<br>
	 * 函数功能：构造函数<br>
	 * 异常信息：无<br>
	 */
	init : function(){
		this._super();
	},

	/**
	 * 函数名称：Rainier.UI.V2.AbstractEditPart.onRequestCommand<br>
	 * 函数功能：当请求命令时发出<br>
	 * 参数输入：request<br>
	 * 函数返回：draw2d.command.Command<br>
	 * 异常信息：<br>
	 */
	onRequestCommand : function(request){
       if(request.getPolicy() === draw2d.command.CommandType.MOVE) {
    	   if(!this.figure.isDraggable()){
    		   return null;
    	   }
    	   return new Rainier.UI.V2.CommandMovePort(this);
       }
       
       if(request.getPolicy() === draw2d.command.CommandType.CONNECT) {
    	   var canvas = this.figure.getCanvas();
    	   var context= canvas.context;
    	   var source = request.source;
    	   var target = request.target;
    	   return new Rainier.UI.V2.CommandConnect(context,source,target);
       }
       return null;
	},

});

